/**
 * 节流函数
 * @param fn   回调函数
 * @param num  延迟时间
 */
export const throttle = (fn: Function) => {
    //定义一个定时器
    let timer: NodeJS.Timeout | null = null;
    //上次执行的时间
    let last: Number = 0;
    return function (this: any,...args: any[]) { 
        let context: any = this;
        //记录本次回调的时间
        let date: Number = new Date().getTime();
        if (<number>date - <number>last > 1500) {
            if (timer) clearTimeout(timer);
            timer = setTimeout(() => {
                last = date;
                fn.call(context, args);
            }, 1500);
        } else { 
            last = date;
            fn.call(context,args)
        }
    }
}